1. The Field of the Invention
The present invention relates to computing technology. More specifically, the present invention relates to mechanisms for allowing multiple applications to create groups within a common address book and allowing other applications access to the group while still maintaining control over access to the groups.
2. The Relevant Technology
Computing technology has revolutionized the way people work and play and has contributed enormously to the advancement of humankind. Computers now aid in enumerable applications such as word processing, computer simulations, advanced gaming, voice recognition, among much more. Computing systems now come in a wide-variety of forms including, for example, desktop computers, laptop computers, Personal Digital Assistants (PDAs), and even mobile telephones and devices.
Many computing systems are configured to support applications such as e-mail or instant messaging that implement an address book. The address book is used by a user of the application (or by the application itself) for a variety of purposes. For example, an e-mail application may use the information to distribute e-mail, or to present options for e-mail recipients, while an instant messaging application may use the information to decide on which participants will be given presence data about which participants. Regardless of the application, the address book allows for quick and easy access to the information stored in the address book.
Individual entries in an address book may represent individuals or resources (e.g., a conference room or other equipment). It is quite common for these individual entries to be organized into “groups” within an address book according to some logical criteria. For example, a group may be a distribution list of related address book entries. For example, a “friends” group may consist of all the address entries for a group creator's close friends. Use of these groups enables the user to efficiently access the information in the address book for an entire group of logically related entries.
While users commonly create groups, the application providing the address book may also create groups, require rules for group membership or simply use the groups created by the user. For example, an instant messaging service may allow the user to create the “friends” group only when the user follows certain rules imposed by the instant messenger provider, such as all members must have an instant messaging addresses within the service provider domain (e.g. AOL, MSN, or YAHOO!). The application that created the group maintains total control of the group. In other words, the application that creates the group also creates rules governing the membership of the group. A user that desires to change group membership conventionally does so within the confines of the application that created the group. For example, an instant messenger application requires that members of an instant messenger group have an instant messenger address for group membership. If a potential new addition to the group does not have an instant messenger address, the instant messaging application does not allow the new addition to the group.
This application-based control of the groups means that each application generally maintains its own address book. This often leads to duplication of information in the various address books, thereby wasting computing resources and complicating the overall user experience.
One solution to this problem would be the use of a common address book available to all applications. This would allow all applications to place within the common address book any groups that the applications had created. However, it would still be desirable for the creating application to maintain control over access to the group. This would prevent one application from modifying a group created by another application without the creating application's permission.
Accordingly, what is desired is a method that allows any application the ability to create and share groups within a common address book while still maintaining control over the access to the groups that were created.